package com.hangzhou.xyj.net.request;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.hangzhou.xyj.net.request.base.BaseRequest;
import com.hangzhou.xyj.utils.StringUtil;
import com.hangzhou.xyj.utils.constants.API;

import java.util.List;

/**
 * Created by yaohuix on 2016/2/27  10:35
 * <p/>
 * 说明：添加动态 请求
 */
public class AddDynamicReq extends BaseRequest {

    public static final int TYPE_AUDIO = 1;//音频类型
    public static final int TYPE_IMG = 2; //图文类型


//    type 1是音频动态 2是图片动态，如果对已经保存了的音频添加动态添加音频的id为id，
//    userId(必填)，address详细地址,location城市,time（时长1:30）
//    name戏曲名或动态内容（如果是音频类不需要输入，如果没有戏曲名字后台会根据baseId去拿baseId对应的戏曲名）,
//    content输入的动态内容，baseId根据那首歌id来唱的，singWord歌词,url音频地址，
//    attachments动态图片数组形式,
//    如 ：{"userId":1,"location":"test","address":"test","id":1}


    /**
     * @param type      1是音频动态 2是图片动态
     * @param userId    用户Id
     * @param address   详细地址
     * @param city  地点城市
     * @param dramaName 曲目名称
     * @param dramaUrl    戏曲url
     * @param dramaUrl    歌词Url
     * @return
     * @Description
     * @author yaohuix
     * @date 2016/2/27 10:47
     */
    public AddDynamicReq(int type, String userId, int baseDramaId, String dramaName,
                         String dramaUrl, String lrcUrl, String time, String content,
                         String address, String city) {
        JsonObject jsonObject = new JsonObject();
        jsonObject.addProperty("type", type);
        jsonObject.addProperty("userId", Long.valueOf(userId));
        jsonObject.addProperty("content", content);
        jsonObject.addProperty("address", address);
        jsonObject.addProperty("location", city);
        jsonObject.addProperty("time", time);
        jsonObject.addProperty("name", dramaName);
        jsonObject.addProperty("baseId", baseDramaId);
        jsonObject.addProperty("url", dramaUrl);
        jsonObject.addProperty("singWord", lrcUrl);

        String jsonStr = new Gson().toJson(jsonObject);
        add("data", jsonStr);
    }


    /**
     * 发布图文动态的构造方法
     *
     * @param type        1是音频动态 2是图片动态
     * @param userId      用户ID，代表是谁发布的
     * @param textContent （可选）文本内容
     * @param address     （可选）详细地址
     * @param location    （可选）城市
     * @param attachments （可选）图片列表
     * @return
     * @author yaohuix
     * @date 2016/3/18 14:44
     */
    public AddDynamicReq(int type, String userId, String textContent, String address, String location, List<String> attachments) {
        JsonObject jsonObject = new JsonObject();
        jsonObject.addProperty("type", type);
        jsonObject.addProperty("userId", userId);
        jsonObject.addProperty("name", textContent);
        jsonObject.addProperty("content", textContent);
        if (StringUtil.isNotEmpty(address)) {
            jsonObject.addProperty("address", address);
        }
        if (StringUtil.isNotEmpty(location)) {
            jsonObject.addProperty("location", location);
        }
        if (attachments != null && attachments.size() != 0) {
            jsonObject.add("attachments", new JsonParser().parse(new Gson().toJson(attachments)));
        }
        String jsonStr = new Gson().toJson(jsonObject);
        add("data", jsonStr);
    }

    @Override
    public String getUrl() {
        return API.ADD_DYNAMIC;
    }
}
